home *** CD-ROM | disk | FTP | other *** search
- /* Double Buffering
- ** ----------------
- ** This just shows how to double buffer the screen. You can also try out
- ** triple buffering just by changing the DBLBUFFER flag to TPLBUFFER in the
- ** GameScreen.
- */
-
- MODULE 'games','games/games'
-
- PROC main()
- DEF screen:PTR TO gamescreen, loadpic:PTR TO picture
-
- IF gmsbase := OpenLibrary('GMS:GPI/Master.GPI',0)
- SetUserPrefs(0)
- IF (screen := AddScreen([TAGS_GAMESCREEN,0,
- GSA_PALETTE,[$000000,$103000,$F0C0B0,$F0A090,$D08080,$906050,$604040,$201010,$400000,$404040,
- $F0F000,$403020,$C0C000,$105000,$500010,$808000,$206010,$207010,$308020,$409020,
- $50A030,$50B040,$607070,$60C040,$708080,$90A0A0,$B0C0C0,$800010,$900010,$A00020,
- $700010,$600010]:LONG,
- GSA_SCRWIDTH,320,
- GSA_SCRHEIGHT,256,
- GSA_PLANES,5,
- GSA_SCRATTRIB,DBLBUFFER,
- TAGEND]))
-
- IF (loadpic := LoadPic([TAGS_PICTURE,0,
- PCA_DATA,screen.memptr1,
- PCA_WIDTH,320,
- PCA_HEIGHT,256,
- PCA_PLANES,5,
- PCA_AMTCOLOURS,32,
- PCA_SCRTYPE,screen.scrtype,
- PCA_FILE,'GMS:demos/data/PIC.Green',
- TAGEND]))
-
- ShowScreen(screen)
- REPEAT
- WaitVBL()
- SwapBuffers(screen)
- UNTIL !(ReadMouse(JPORT1) AND MB_LMB)
-
- FreePic(loadpic)
- ENDIF
- DeleteScreen(screen)
- ENDIF
- CloseGMS()
- ENDIF
- ENDPROC
-
-